RiverSync
SPEC-APP-PAR · v0.9
29 June 2026
Owner: Platform team

Partners — product requirements

partner.riversync.com — where partner users sell RiverSync devices through the shared sales funnel (Leads · Opportunities · Deals · Quotes · Closed) and service the devices they cover across every linked customer: workload, tickets, visits and the telemetry each customer has granted.

DraftPrototyped · apps/partners
Inherits the master PRD. The coverage model is defined in SPEC-PRD PRT-1…8 and the partner channel (distributor · reseller subtypes, the reseller program tier and its capability gating, qualification & conversion) in PRT-9…17: links are per-device agreements, coverage moves at renewal, the customer controls scope, resellers register deals through their distributors, and a reseller's tier (Authorized · Gold · Platinum) gates what it can do. This app is the partner-side mirror of Account's partner detail surface (ACC-3).

1Requirements

PAR-1

Coverage-scoped, always. A partner sees exactly the devices it covers under active agreements, per customer, within the scope each customer granted — never an organization beyond that.

PAR-2

Multi-customer workload — one queue of tickets, alarms and scheduled visits across all covered customers, prioritized by SLA (agreement tier of the affected device).

PAR-3

Renewals are business — devices approaching agreement renewal surface to the partner (win/keep), including coverage that will move away (e.g. Southern Thailand devices moving to Huawei on 1 Aug 2026).

PAR-4

Tier program (reseller only). A reseller sees its program level (Authorized · Gold · Platinum), a balanced qualification scorecard (certifications · revenue · service quality) showing progress to the next tier, a journey roadmap to it, and the full capability comparison of what each level unlocks (master PRT-14, PRT-16). The surface is read-only progress — RiverSync grants the tier; the reseller never sets it. A distributor carries no tier, so the Tier program is absent from a distributor's navigation entirely — a direct visit redirects to Overview (PRT-14).

PAR-5

Membership-gated — requires a partner-tenant account (master AUTH-2); every action lands in the affected customer's audit log (master PRT-4).

PAR-6

Deal registration (resellers). A reseller registers deals here — customer, devices/models, and the channel: one of its registered distributors (master PRT-10), or a request to go direct, which only stands once RiverSync grants the per-deal exception (master PRT-11). Deals is one rung of the shared sales funnel (PAR-12); a registered deal enters as a Deal and proceeds through Quote to Close.

PAR-7

Distributor funnel. A distributor enters the shared funnel at the Deal: it sees the registered Deals · Quotes · Closed of every reseller it handles — with value and quote detail masked on deals not channeled through it (master PRT-12). The funnel lives here; the Pipeline app stays RiverSync only.

PAR-8

Distribution agreements surface. Each partner sees its own registered distribution agreements — a reseller its distributors, a distributor its resellers — with scope (region · product line) and status. Registration and termination are RiverSync-mediated.

PAR-9

Tier gates live functionality (resellers). A reseller's tier (PAR-4) governs what the app lets it do, resolved from the master entitlement map (PRT-15): the concurrent registered-deal cap (Authorized 5 · Gold 20 · Platinum unlimited) blocks new registrations at the limit; the pricing level on each deal/quote (list · −8% · −15%) reflects tier; direct-from-RiverSync is hidden for Authorized, by request for Gold, streamlined for Platinum; RiverSync lead sharing, co-marketing and early/beta hardware surfaces appear only at the tiers that unlock them. Gated controls show a tier-locked state, never a dead end — they name the tier that unlocks them.

PAR-10

Refer a lead (resellers). Beyond registering a full deal (PAR-6), a reseller may pass an early inquiry to RiverSync as a referral lead — customer / contact and interest, with the reseller recorded as the source — which lands in Pipeline's lead inbox attributed to it (master SAL-3, SAL-4). Lighter than deal registration, for interest the reseller surfaces but does not yet own.

PAR-11

Shared leads & opportunities (resellers). RiverSync can assign a lead or opportunity to a reseller to follow up — gated by the reseller's tier (lead sharing, master SAL-7, PAR-9); shared items appear in the reseller's queue, and a win is registered through its channel (PAR-6, master PRT-11).

PAR-12

One sales funnel, role-scoped. Partners speaks the single platform sales funnel — Leads · Opportunities · Deals · Quotes · Closed (master SAL-1…8), the same ladder Pipeline runs — rendered as the Sales nav group above Service. It is one shared record set, not a private pipeline: each party sees a role-scoped lens over the same Deal. A reseller participates across the whole ladder (refers / works Leads & Opportunities RiverSync shares, registers the Deal and picks the channel, follows the Quote to Close, then services the win); a distributor enters at the Deal (a masked roll-up across its resellers — Deals · Quotes · Closed); RiverSync (Pipeline) owns all five as the system of record. The partner-network registry (distributors / resellers / distribution agreements) is a separate Channel group, distinct from the funnel.

PAR-13

No in-page subtype banner. A partner's tenant and subtype are established by the app chrome — the top-bar Partners app pill, the product switcher and the profile menu — and by the subtype-split sidebar itself (PAR-12). Pages therefore carry no in-body identity banner repeating org name / subtype / tier; it duplicated context already on screen and earned no space. Applies to both subtypes, every page.

2Navigation & menu visibility

Built. The Partners prototype (apps/partners) implements a subtype-split sidebar in which both subtypes speak the one platform sales funnel — Leads · Opportunities · Deals · Quotes · Closed (PAR-12, master SAL-1…8) — each seeing only the contiguous rungs its role is authorized on. The Sales group sits above Service (commercial before operational); a slim Channel group holds the partner-network registry. A reseller and a distributor never share a navigation. Switch subtype with the shell Tweaks “Partner type” toggle.

Partners is partner-tenant-only and membership-gated (master AUTH-2, PAR-5): it never appears to customer or riversync accounts. Visibility splits two ways: by partner subtype — a reseller works the whole funnel and services covered devices; a distributor enters at the Deal and holds no service coverage — and by role (Administrator · Service coordinator / Channel manager · Sales). An item a role cannot reach is hidden and blocked on a direct visit.

Full visible, can act Read visible, read-only hidden & blocked on direct visit

Reseller sidebar (Nera · Gold) — works the whole sales funnel and services covered devices:

Distributor sidebar (MegaWarehouse · distributor) — enters at the Deal, holds no service coverage:

Menu itemAdministratorCoordinator / ManagerSales
Sales · reseller subtype
LeadsFullFull
OpportunitiesFullFull
DealsFullFull
QuotesFullFull
ClosedFullReadFull
Channel · reseller subtype
My distributorsFullReadRead
Service · reseller subtype only
WorkloadFullFull
Covered devicesFullFullRead
RenewalsFullReadFull
Program · reseller subtype only
Tier programFullReadRead
Sales · distributor subtype
Deals (funnel)FullFull
QuotesFullFull
ClosedFullReadFull
Channel · distributor subtype
ResellersFullReadRead
Distribution agreementsFullReadRead

The Sales role drives the funnel (Leads → Closed) and renewals; the Coordinator / Manager drives Service (and, for a distributor, the Channel manager runs the funnel). On Distribution agreements, registration and termination are RiverSync-mediated (PAR-8) — partners read their own agreements but cannot self-register.

3The shared funnel — who drives which rung

One Deal travels the funnel; the three parties act on the same record with different authority and visibility at each rung — there is no per-app copy to reconcile. Each stage hand-off is a domain event on the backbone (lead.captured · lead.assigned · lead.converted · opportunity.confirmed · deal.registered · deal.channel-changed · deal.won).

RungReseller · PartnersDistributor · PartnersRiverSync · Pipeline
LeadsRefers an inquiry; works shared leads (tier-gated)— (pre-channel)Owns the inbox; qualifies / disqualifies
OpportunitiesCo-works a shared opportunity— (pre-channel)Converts, shapes variants, confirms
DealsRegisters the deal; picks distributor XOR requests directSees it in its funnel — masked off-channelApproves / reallocates channel; confirms
QuotesSees tier margin on its dealsSees on-channel quotes; masked off-channelIssues the quote (pricing owner)
ClosedBecomes servicing partner; owns renewalsEarns channel-volume creditMarks won → provisioning saga

Reseller rungs scope to its own + shared records; distributor rungs are a roll-up across its resellers with off-channel value masked (master PRT-12); RiverSync sees all five unscoped as the system of record. Channel can be reallocated up to the win, always audited (master PRT-11).

4Open questions

The master PRD's §7 questions all land here:

5Revision history

VersionDateChanges
0.112 Jun 2026Initial draft — partner-side mirror of the coverage model
0.212 Jun 2026Partner channel — PAR-6…8: reseller deal registration, masked distributor funnel, distribution agreements surface (master PRT-9…12)
0.327 Jun 2026Navigation & menu visibility (new §2, proposed). A proposed Partners sidebar derived from PAR-1…8 plus a role × menu-item visibility matrix, split by partner subtype (reseller Deals vs distributor Funnel) and role (Administrator · Coordinator/Manager · Sales). Marked proposed — no built nav yet. Open questions and revision history renumbered §3–§4. No requirement-structure changes.
0.427 Jun 2026Partners prototyped (§2 now Built). New app prototype at apps/partners on the shared shell with two distinct nav models selected by partner subtype: reseller (Overview · Service[Workload · Covered devices · Renewals] · Channel[Deals · My distributors] · Program · Account) and distributor (Overview · Channel[Funnel · Resellers · Distribution agreements] · Program · Account — no Service group). §2 rewritten to two rails mirroring the build; matrix re-grouped by subtype, Visits folded into Workload, Resellers added (distributor). Subtype switches via the shell Tweaks “Partner type” toggle. No requirement-line changes.
0.528 Jun 2026Reseller tier becomes capability-gating (PAR-4 reworked, PAR-9 added). PAR-4 expands the Tier program to a reseller-only surface — qualification scorecard (certifications · revenue · service quality), journey roadmap and capability-comparison — read-only progress, RiverSync-granted (master PRT-14, PRT-16); a distributor sees an explanatory empty state. PAR-9 makes tier gate live functionality: deal-cap (5/20/∞), pricing level (list/−8%/−15%), direct-exception eligibility, lead sharing, co-marketing and early-access surfaces (master PRT-15). §2 distributor rail loses the Program group (no distributor tier); matrix Program group relabelled reseller-only. Prototype: Partner Tier rebuilt (scorecard + roadmap + matrix, tier-preview), Deals/Overview gate by tier. Cascades from master PRT-14…17 / SPEC-ERD DM-39…42.
0.628 Jun 2026Partner-side sales front (PAR-10, PAR-11). PAR-10 — a reseller may refer a lead (lighter than registering a full deal) that lands in Pipeline's lead inbox attributed to it; PAR-11 — RiverSync can share a lead or opportunity to a reseller to follow up, tier-gated (lead sharing). §2 reseller Channel group gains Refer a lead · Shared leads; matrix updated. Cascades from master SAL-3 / SAL-4 / SAL-7 and SPEC-APP-PIP PIP-10.
0.728 Jun 2026My account removed from the Partners sidebar (both subtypes). The Account → My account nav group is dropped from the reseller and distributor §2 nav rails and the visibility matrix; a partner manages its own account in the Account app and the top-bar profile menu, reachable from every app under one federated session (FED-3) and always-open even when unverified (FED-4). Navigation-only change — no requirement or data-model impact. Prototype PARTNER_NAV models updated to match.
0.829 Jun 2026Unified sales funnel across the three parties (PAR-12 added; PAR-6/7 restated; new §3). Partners now speaks the one platform funnel — Leads · Opportunities · Deals · Quotes · Closed (master SAL-1…8), the same ladder Pipeline runs — as a Sales nav group above Service, with the former “Channel” group split into the funnel (Sales) and a slim network registry (Channel). A reseller carries all five rungs; a distributor enters at the Deal (Deals · Quotes · Closed, masked off-channel). New §3 maps who drives which rung across reseller · distributor · RiverSync with the hand-off events. §2 rails + visibility matrix rebuilt; prototype gains Partner Leads · Opportunities · Quotes · Closed and a shared partner-funnel.js stage vocabulary; PARTNER_NAV models reordered. Aligns with SPEC-APP-PIP and SPEC-PRD-SAL §10. Open questions / revision renumbered §4–§5.
0.929 Jun 2026Removed the in-page subtype identity banner (PAR-13 added). The per-page identity banner (org name · subtype · tier) is dropped from every partner page for both subtypes — the app pill, product switcher, profile menu and subtype-split sidebar already establish that context, so the banner added no value. Prototype: Partners.subbar() is now a no-op and the Overview inline banner + its script were removed; .pt-subbar mount points stay harmless. Navigation/chrome only — no data-model impact.
RiverSync Co., Ltd. · BangkokSPEC-APP-PAR · 1 of 1